package com.lagou.homework.modulefour.second;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;

/*
 * @className HomeWorkTwo
 * @description: 编写程序，循环接收用户从键盘输入多个字符串，直到输入“end”时循环结束，并将所有已输入的字符串按字典顺序倒序录入到项目下abc.txt中
 * @author admin
 * @date 2022/4/1 15:22
 * */
public class HomeWorkTwo {

    public static void main(String[] args) {
        // 1.创建Scanner类型的对象接收用户输入
        Scanner sc = new Scanner(System.in);
        String str = null;
        // 2.创建一个List类型的引用指向ArrayList类型的对象 存放数据并按字典数顺序排序
        List<String> list = new ArrayList<>();
        // 3.当字符串不等于end时继续接收用户输入
        while(true){
            System.out.print("请输入字符串: ");
            str = sc.next();
            if("end".equalsIgnoreCase(str))
                break;
            else
                list.add(str);
        }
        // 4.对list集合中的元素排序
        Collections.sort(list);
        System.out.println("字典排序: ");
        for(String s :list){
            System.out.println(s);
        }
        // 5.创建BufferedWriter类型的对象
        BufferedWriter bw = null;
        try {
             bw = new BufferedWriter(new FileWriter("abc.txt"));
             // 6.循环倒序遍历list集合中的内容并写入到abc.txt文件
             for(int i = list.size()-1;i>=0;i--){
                 bw.write(list.get(i));
                 // 换行
                 bw.newLine();
             }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 关闭字符输出流并释放资源
            if(null!=bw){
                try {
                    bw.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
